package com.sunwayhorizo.health.platform.security.service.operation;

import java.util.List;

import javax.ejb.Local;

import com.sunwayhorizo.health.business.dto.ResultsDTO;
import com.sunwayhorizo.health.platform.security.persistent.SecurityOperation;

@Local
public interface SecurityOperationManagerLocal {
	
	/**
	 * 新增操作
	 * @param operation 实体
	 * @return 返回ResultsDTO,若成功返回提示信息，标志为True，以及实体生成的ID，若失败返回提示信息，标志为False
	 */
	ResultsDTO newSecurityOperation(SecurityOperation operation);
	
	/**
	 * 批量删除操作级联包含permissions
	 * @param list 字符串List
	 * @return 返回ResultsDTO,若成功返回提示信息，标志为True，若失败返回提示信息，标志为False
	 */
	ResultsDTO delSecurityOperation(List<String> list);
	
	/**
	 * 修改操作
	 * @param operation 实体
	 * @return 返回ResultsDTO,若成功返回提示信息，标志为True，若失败返回提示信息，标志为False
	 */
	ResultsDTO updateSecurityOperation(SecurityOperation operation);
	
	/**
	 * 查询操作的列表
	 * @return 返回ResultsDTO,若成功返回提示信息，标志为True，以及实体列表,若失败返回提示信息，标志为False
	 */
	ResultsDTO findSecurityOperationList();
	
	/**
	 * 根据操作名称查询操作的列表
	 * @return 返回ResultsDTO,若成功返回提示信息，标志为True，以及实体列表,若失败返回提示信息，标志为False
	 */
	ResultsDTO findSecurityOperationList(String operationName);
	
	/**
	 * 查询操作的详细信息
	 * @param operationId 实体Id
	 * @return	返回ResultsDTO,若成功返回提示信息，标志为True，以及查询到的实体，若失败返回提示信息，标志为False
	 */
	ResultsDTO findSecurityOperationDetailById(String operationId);
	
	/**
	 * 对操作的名称进行唯一性约束
	 * @param operationId	实体ID
	 * @param operationName	实体名称
	 * @return				返回ResultsDTO,若唯一返回提示信息，标志为True，若重复时返回提示信息，标志为False
	 */
	ResultsDTO validateUniqueSecurityOperation(String operationId,String operationName);
}
